package nanzhuli.user.svc.model.resp.ozi.rest;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;

@Data
public class Holiday {

    /**
     * 日期
     */
    Date date;

    /**
     * 是否法定假期：1-是，2-否
     */
    String status;

    /**
　　* set<>去重，重写如下两个方法hashCode、equals
　　*/
    @Override
    public int hashCode(){
        int result = 17;
        result = 31 * result + (date == null ? 0 : date.hashCode());
        result = 31 * result + (status == null ? 0 : status.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj){
        if(this == obj){
            return true; // 地址相等
        }
        if(obj == null){
            return false; // 非空性：对于任意非空引用x，x.equals(null)应该返回false。
        }
        if(obj instanceof Holiday){
            Holiday holiday = (Holiday) obj;
            // 需要比较的字段相等，则这两个对象相等
            if(equalsStr(this.date.toString(), holiday.date.toString()) && equalsStr(this.status, holiday.status)){
                return true;
            }
        }
        return false;
    }

    private boolean equalsStr(String str1, String str2){
        if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2)){
            return true;
        }
        if(!StringUtils.isEmpty(str1) && str1.equals(str2)){
            return true;
        }
        return false;
    }

}
